Calculating lists of events in activity streams

ABSTRACT

A method for calculating lists of events in activity streams includes calculating a list of activity events for a user&#39;s activity stream based on weights assigned to implicit actions and explicit actions and prioritizing the list of the activity events in the user&#39;s activity stream based on the weights.

BACKGROUND

The present invention relates to calculating lists of events in activitystreams, and more specifically, to calculating list of events inactivity streams in social network services.

A social network service is a web based application to enable a user toestablish connections with other users such as friends, family, andcolleagues in an online environment. Once a user is connected to otherusers, the users may share information with each other on the socialnetwork service by uploading pictures, updating personal information,commenting on other user's information, among other activities. A socialnetwork service uses an activity stream to display this informationshared between the users. An activity stream allows a user to be awareof collaborative actions taken by other users. In addition toestablishing connections with other users, a user may follow a resourcesuch as an item or topic of interest. By following a resource, theresource is displayed in a user's activity stream. Thus, a user'sactivity stream displays shared information from other users, as well asresources.

BRIEF SUMMARY

A method for calculating lists of events in activity streams includescalculating a list of activity events for a user's activity stream basedon weights assigned to implicit actions and explicit actions andprioritizing the list of activity events in the user's activity streambased on the weights.

A system for calculating lists of events in activity streams includes auser device including a user interface allowing a user to accessmultiple social network services and multiple product websites and asocial network server in communication with the user device to capture auser's interactions of multiple resources from the multiple socialnetwork services and the multiple product websites.

A computer program product includes a computer readable storage medium,the computer readable storage medium having computer readable programcode embodied therewith. The computer readable program code havingcomputer readable program code to calculate a list of activity eventsfor a user's activity stream based on weights assigned to implicitactions and explicit actions and prioritize the list of activity eventsin the user's activity stream based on the weights.

A system for calculating lists of events in activity streams includes acalculation engine to calculate a list of activity events for a user'sactivity stream based on weights assigned to implicit actions andexplicit actions and a priority engine to prioritize the list ofactivity events in the user's activity stream based on the weights.

A method for calculating lists of events in activity streams includescapturing a user's interactions of multiple resources from multiplewebsites to determine implicit actions and explicit actions, weighingthe multiple implicit actions and explicit actions, calculating a listof activity events for a user's activity stream based on weightsassigned to implicit actions and explicit actions, prioritizing the listof activity events in the user's activity stream based on the weights,and displaying the list of the prioritized activity events in the user'sactivity stream.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying drawings illustrate various examples of the principlesdescribed herein and are a part of the specification. The examples donot limit the scope of the claims.

FIG. 1 is a diagram of an example of a system for calculating lists ofevents in activity streams, according to one example of principlesdescribed herein.

FIG. 2 is a flowchart of an example of a method for calculating lists ofevents in activity streams, according to one example of principlesdescribed herein.

FIG. 3 is a flowchart of an example of a method for calculating lists ofevents in activity streams, according to one example of principlesdescribed herein.

FIG. 4 is a diagram of an example of a smart social targeting andfollowing system, according to the principles described herein.

FIG. 5 is a diagram of an example of a smart social targeting andfollowing system, according to principles described herein.

Throughout the drawings, identical reference numbers designate similar,but not necessarily identical, elements.

DETAILED DESCRIPTION

The present specification describes a method and system for calculatinglists of events in activity streams in social network services such thatthe list of events in the activity stream is of interest to a user of asocial network service.

As will be appreciated by one skilled in the art, aspects of the presentspecification may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present specification may take theform of hardware or a combination of hardware and software. Furthermore,aspects of the present specification my take the form of a computerprogram product embodied in a number of computer readable mediums havingcomputer readable program code embodied thereon.

Any combination of computer readable medium(s) may be utilized. Thecomputer readable medium may be a computer readable signal medium or acomputer readable storage medium. A computer readable storage medium maybe, for example, but not limited to, an electronic, magnetic, opticalelectromagnetic, infrared, or semiconductor system, apparatus, or deviceor any suitable combination of the foregoing. More specific examples (anon-exhaustive list) of the computer readable mediums would include thefollowing: an electrical connection having a number of wires, a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROPor Flash memory), an optical fiber, a portable compact disk read-onlymemory (CD-ROM), an optical storage device, a magnetic storage device,or any suitable combination of the foregoing. In the context of thisdocument, a computer readable storage medium may be any tangible mediumthat can contain, or store a program for use by or in connection withany instruction execution system, apparatus, or device such as, forexample, a processor.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wire line, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations of the presentspecification may be written in an object oriented programming languagesuch as Java, Smalltalk, or C++, among others. However, the computerprogram code for carrying out operations of the present systems andmethods may also be written in procedural programming languages, suchas, for example, the “C” programming language or similar programminglanguages. The program code may execute entirely on the user's computer,partly on the user's computer, as a stand-alone software package, partlyon the user's computer and partly on a remote computer or entirely onthe remote computer or server. In the latter scenario, the remotecomputer may be connected to the user's computer through a local areanetwork (LAN) or a wide area network (WAN), or the connection may bemade to an external computer (for example, thought the internet using aninternet service provider).

Flowchart illustrations and/or block diagrams of methods, apparatus, andcomputer program products are disclosed. Each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor or other programmable data processingapparatus to produce a machine, such that the instructions, whichexecute via a processor of the computer or other programmable dataprocessing apparatus, implement the functions/acts specified in theflowchart and/or block diagram block or blocks.

In one example, these computer program instructions may be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instructions whichimplement the functions/act specified in the flowchart and/or blockdiagram blocks or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperations to be performed on the computer or other programmableapparatus to produce a computer implement process such that theinstructions which execute on the computer or other programmableapparatus implement the functions/acts specified in the flowchart and/orblock diagram blocks or blocks.

As noted above, an activity stream allows a user to be aware ofcollaborative actions of other users as well as information aboutresources. Although establishing a connection to another user orresource allows information to be displayed in a user's activity stream,if a user establishes a connection to hundreds of users or resources, auser's activity stream is overburdened with information to display.Further, depending on each user's likes and interests, a user's activitystream is prioritized to display relevant information first.

To prioritize relevant information to be displayed in a user's activitystream, a social network service can use an edgerank function. Theedgerank function is used to prioritize relevant information such as topnews and most recent news in a user's activity stream. In one example,the top news and the most recent news are displayed first in a user'sactivity stream. After the top news and the most recent news aredisplayed, less relevant information from other users or resources aredisplayed. Further, the edgerank function uses many explicit events toprioritize the top news and the most recent news in a user's activitystream. For example, explicit events may include the number of friendscommenting on a post, who posted the content, and the type of contentsuch as photographs, videos, status updates, the number of likes, howmany users clicked on a photograph, among others. Although the edgerankfunction takes into account a user's social network and explicit events,the edgerank function is merely prioritizing a user's existing activitystream.

Further, the edgerank function does not account for when a user connectswith a broader social network services, such as blogs, communities,forums, profiles, or even product websites. By connecting with a broadersocial network service or product websites, a user may implicitlyexpress interest in users or resources from these services and websites.Further a user may express an explicit interest in an item or topic froma broader social network service or product website. These implicit andexplicit interests are not displayed in a user's activity stream on asocial network service. For example, assume a user expresses implicitlyand/or explicitly interest in a blogging website. The blog posts fromthis blogging website won't be displayed in a user's activity streamunless the user finds a subscribe link for the blogging website andsubscribes to the link. Further, subscribing to the link would be abookmark and the continued blog posts and activity is excluded alltogether on the user's activity stream.

The principles described herein include a system and a method toprioritize a list of activity events in a user's activity stream. Thus,the prioritized list of activity events in a user's activity stream isdetermined by weighed implicit actions and explicit actions. This willmake a user aware of updates, comments, likes and other events fromusers and resources. The activity events may be implicit actions,explicit actions, other actions, or combinations thereof. An action mayinclude actions taken by a user on the user's client device. More detailabout actions will be described below.

In one example, a method for prioritizing a list of activity events in auser's activity stream includes calculating a list of activity eventsfor a user's activity stream based on weighted implicit actions andexplicit actions and prioritizing the list of activity events in auser's activity stream based on the weighted implicit actions andexplicit actions of the list of activity events.

This method may also include capturing implicit actions and explicitactions, when a user interacts with a broader social network or productwebsites, to leverage trending topics and semantics on phrases toextract meaningful topics. In such an example, a user uses a web browseruser interface on a user device to access broader social networkservices, such as blogs, communities, forums, profiles, or even productwebsites. As the user interacts with resources from these broader socialnetwork services or product websites, implicit actions and explicitactions are captured. For example, when a user accesses a productwebsite, a user will encounter resources. In one example these resourcescan be people, products, content, tags, and topics, among others. As auser views these resources, the user is expressing an interest in theseresources. For example, as a user types a topic in a search engine, theuser is implicitly expressing an interest in such topics. Further, auser can want a resource such as an item or add the item to a wish list.As will be described below, a social targeting and following routinecaptures a user's implicit actions and explicit actions to leveragetrending topics and semantics on phrases to extract meaningful topics.These implicit actions and explicit actions are captured by a system toinfluence activity events to be used when rendering the user's activitystream.

The captured implicit actions and explicit actions are weighed. In oneexample, weighing multiple implicit actions is determined in part by arelationship of a user to a resource, time spent viewing a resource, ageof last view of a resource, frequency of views of a resource, use oftrending terms, and a collective graph from a user's social graph.Further, implicit actions with a higher weight signify the implicitactions are more relevant to the user. Alternatively, implicit actionswith a lower weight signify the implicit actions are less relevant to auser.

Additionally, weighing multiple explicit actions is determined by a userindicating interest in a resource such as reading a profile, visiting acommunity, replying to a topic, tagging a bookmark, repeating a view,marking a favorite, prioritizing a favorite, deprioritizing a favorite,sharing the resource, sharing the resource with an importance flag,using an action requested event, or other indicators of higher thanaverage importance. Further, explicit actions with a higher weightsignify the explicit actions are more relevant to the user.Alternatively, explicit actions with a lower weight signify the explicitactions are less relevant to a user.

Based on the weighed implicit actions and explicit actions, a list ofactivity events for a user's activity stream is calculated. The list ofactivity events is determined by weight of implicit actions and explicitactions captured by the system from the broader social network services,such as blogs, communities, forums, profiles, or even product websites.

Also, the list of activity events in a user's activity stream isprioritized. Prioritizing the list of activity events in a user'sactivity stream is based on the weighted implicit actions and explicitactions of the list of activity events. For example, implicit actionsand explicit actions with a higher weight are prioritized beforeimplicit actions and explicit actions with a lower weight.

The prioritized list of activity events may be displayed in the user'sactivity stream. Displaying the prioritized list of activity eventsincludes displaying first the activity events in the activity streamwhere implicit actions and explicit actions that were indicated to behighest priority. The implicit actions and explicit actions influencewhich activity events are displayed in a user's activity stream and inwhat order the activity events are to be displayed. For example,implicit actions and explicit actions having a higher priority are usedto display activity events in the user's activity stream correspondingto these high priority implicit actions and explicit actions beforeactivity events corresponding to implicit actions and explicit actionshaving a lower priority. In one example, each implicit action orexplicit action corresponds to an activity event. In another example, aset of implicit actions or a set of explicit actions corresponds to asingle activity event. Thus, based on a user's interaction withresources, implicit actions and explicit actions are captured and arelater re-used to influence which activity events are displayed in auser's activity stream and in what order the activity events are to bedisplayed when rendering a user's activity stream.

The present specification also describes a system for capturing implicitactions and explicit actions by using user device with a user interfaceto allow a user to access a broader social network services, such asblogs, communities, forums, profiles, or even product websites; and asocial network server in communication with the user device to capture auser's interactions of multiple resources from multiple websites toserve as implicit actions and explicit actions.

A broader social network services may be a blog, a forum, a thread, aprofile, or any appropriate combination thereof. A resource may be anobject or content that a user can interact with on a broader socialnetwork service or even product websites. For example, a resource can bepeople, products, content, tags, and topics.

An explicit action is a user's expressed interest in a resource. Forexample, an explicit action may be determined when a user reads aprofile, visits a community, replies to a topic, tags a bookmark,repeats a view, marks a favorite, prioritizes a favorite, deprioritizesa favorite, connects to another user, likes a resource, shares aresource with an importance flag, using an action requested event, otherindicators of higher than average relevance, or combinations thereof. Itshould be noted that not all explicit actions are used as activity eventin a user's activity stream. For example, an explicit action that is notused as activity event in a user's activity stream is repeat view.However, an explicit action used as activity event that is in a user'sactivity stream is reply to a topic. Additionally, explicit actions areused to influence which activity events are displayed in a user'sactivity stream and in what order the activity events are to bedisplayed.

An implicit action is a user's implied interest in a resource. Forexample, an implicit action may be determined by a relationship of auser to a resource, viewing a resource, use of trending terms, acollective graph from a user's social graph, or conditions, orcombinations thereof. Additionally, implicit actions are used toinfluence which activity events are displayed in a user's activitystream and in what order the activity events are to be displayed.

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present systems and methods. It will be apparent,however, to one skilled in the art that the present apparatus, systems,and methods may be practiced without these specific details. Referencein the specification to “an example” or similar language means that aparticular feature, structure, or characteristic described in connectionwith that example is included as described, but may not be included inother examples.

As will be described in detail below, a method for calculating lists ofevents in activity streams includes calculating a list of activityevents for a user's activity stream based on weighted implicit actionsand explicit actions. The method then includes prioritizing the list ofactivity events in a user's activity stream based on the weightedimplicit actions and explicit actions of the list of activity events.

Referring now to the figures, FIG. 1 is a diagram of an example of asystem for calculating lists of events in activity streams, according toone example of principles described herein. As mentioned above, a socialnetwork service may capture resources of interest, such as objects orcontent, to a user based on implicit actions and explicit actions. Forexample, when a user accesses a website, a user will encounterresources. In one example these resources can be people, products,content, and tags among others. As a user views these resources, theuser is expressing an interest in these resources. For example, as auser types a topic in a search engine, the user is expressing aninterest in such topics. In another example, a user can follow resourcessuch as an object or a person. As will be described below, a socialtargeting and following routine captures implicit actions and explicitactions to leverage trending topics and semantics on phrases to extractmeaningful topics. These explicit actions and implicit actions arecaptured by a system and later re-used to influence activity events whenrendering events in the user's activity stream. Additionally, acollective viewing pattern of a user's social graph acts as a filter ona user's activity to further refine a function driving what activityevents are displayed on a user's activity stream, each with a weightedimpact based on a degree of relationship. This influence is both forinclusion and prioritization of events displayed in a user's activitystream.

The system (100) includes a user device (130) using a web browserinterface (131) to connect to a number of servers (120). Using the webbrowser interface (131), a user may interact with content, such aswebsites, stored on a number of servers (120). For example, a user mayaccess server 1 (120-1). In this example, server 1 (120-1) stores, inmemory (121-1), contents for website 1 (122-1). Assume the contents forwebsite 1 (122-1) includes topics and merchandise for laptops, tablets,and desktop computers. Thus, using the web browser user interface (131)a user, using a user device (130), interacts with the content forwebsite 1 (122-1).

Further, assume server 2 (120-2) stores, in memory (121-2), contents forwebsite 2 (122-2). Assume the contents for website 2 (122-2) includestopics and merchandise for guitars. Thus, using the web browser userinterface (131) a user, using a user device (130), interacts with thecontent for website 2 (122-2).

Further, assume server n (120-n) stores, in memory (121-n), contents forwebsite n (122-n). Assume the contents for website n (122-n) includestopics and merchandise for music. Thus, using the web browser userinterface (131) a user, using a user device (130), interacts with thecontent for website n (122-n).

The system (100) further includes a social network server (140). Thesocial network server (140) stores, in memory (141) a social networkservice (142). In one example, the social network service (142) includesan activity stream (143-1) to display information shared by other users.As noted above, the activity stream allows a user to be aware ofcollaborative actions by other users. In keeping with the given example,the activity stream (143-1) includes a sub-activity stream such as anotification stream (143-2) and action requested stream (143-3). Thenotification stream (143-2) displays activity events indicated bymentioning a user in a status update, in a comment, on a resource, orany appropriate combination thereof. As will be described below,mentioning a user in a status update, in a comment, on a resource, orany appropriate combination thereof enables the user to be notified ofsuch an event. The action requested stream (143-3) displays activityevents indicated by an action requested event. As will be describedbelow, an action requested event allows a user to take an action such asaccess a file. Thus, using the web browser user interface (131) a user,using a user device (130), interacts with the activity stream (143-1-1).In one example, the activity stream (143-1) displays photographs thatother users have posted, comments from other users, among other things.

In one example, a smart social targeting and following routine (144) isstored in memory (141) on a social network server (140). The smartsocial targeting and following routine (144) is used to capture a user'simplicit actions and explicit actions, prioritizes activity eventsinfluenced by the implicit actions and explicit actions as a list ofactivity events, and display the activity events on a user's activitystream (143-1). Further, activity events are based on resources, such ascontent and users, which a user is currently following. Resources suchas content and users that a user is currently following arereprioritized or are given a higher weight by a user's implicit actionsand explicit actions indicate an expressed interest in the resource.Additionally, resources such as content and users that a user is notcurrently following can be displayed in a user's activity stream (FIG.1, 143-1) if a user's implicit actions and explicit actions indicate anexpressed interest in the resource. The smart social targeting andfollowing routine (144) and method is described in connection with FIG.2 and FIG. 3 and in later sections of this specification.

Further, the smart social targeting and following routine (144) has acalculation engine (148) and a priority engine (149). The enginesrepresent the program instructions to carry out their indicatedfunctions. The calculation engine (149) calculates a list of activityevents based on weighed implicit actions and explicit actions. Thepriority engine (149) prioritizes a list of activity events.

In keeping with the given example, the smart social targeting andfollowing routine (144) captures a user's implicit actions whileaccessing other social network services and websites. The capturedimplicit actions are stored in an implicit actions repository (146). Forexample, assume a user accesses server 2 (120-2). Using the web browseruser interface (131), the user interacts with content for website 2(122-2). As mentioned above, the content for website 2 (122-2) includestopics and merchandise for guitars. Assume the user views a guitarmanufactured by manufacturer X frequently. Consequently, the userimplicitly expresses interest in the guitar manufactured by manufacturerX. Thus, the smart social targeting and following routine (144) capturesthe implicit actions and stores the implicit event's details in theimplicit actions repository (146).

In another example, assume a user accesses server n (120-n). Using theweb browser user interface (131), the user interacts with content forwebsite n (122-n). As mention above, the content for website n (122-n)includes topics and merchandise for music. Assume the user spends mostof their time viewing music by artist Z. Further, assume the user alsoviews music by artist Y. However, less time is spent by the user viewingmusic by artist Y. Consequently, the user implicitly expresses interestin music by artist Z and artist Y. Thus, the smart social targeting andfollowing routine (144) captures the implicit actions and stores theimplicit action's details in the implicit actions repository (146).

In yet another example, assume a user accesses server 1 (120-1). Usingthe web browser user interface (131), the user interacts with contentfor website 1 (122-1). As mention above, the content for website 1(122-1) includes topics and merchandise for computers. Assume the userspends most of their time viewing laptops manufactured by manufacturerZ. In one example, assume the user clicks a want button next to a laptopmanufactured by manufacturer Z. Consequently, the user explicitlyexpresses interest in the laptop manufactured by manufacturer Z. Thus,the smart social targeting and following routine (144) captures theexplicit action and stores the explicit action's details in the explicitevents repository (145).

Thus, a social network service has captured multiple resources ofinterest to a user based on the user's implicit actions and explicitactions. As will be described below, the smart social targeting andfollowing routine (144) prioritizes and displays the objects or contentas activity events on a user's activity stream (143-1).

In keeping with the examples given above, assume the smart socialtargeting and following routine (144) prioritizes activity eventsinfluenced by explicit actions before activity events influenced byimplicit actions in a user's activity stream (143-1). Thus, whenrendering activity events in a user's activity stream (143-1), thelaptop manufactured by manufacturer Z is displayed first in a user'sactivity stream (143-1). Next, assume the smart social targeting andfollowing routine (144) prioritizes implicit actions by the frequency ofviewing an object or content. Thus, when rendering activity events in auser's activity stream (143-1), the guitar manufactured by manufacturerX is displayed after the laptop manufactured by manufacturer Z in auser's activity stream (143-1). Next, assume the smart social targetingand following routine (144) prioritizes activity events influenced byimplicit actions such as time spend view a resource. Thus, whenrendering activity events in a user's activity stream (143-1), music byartist Z is displayed after the guitar manufactured by manufacturer Xand before music by artist Y in a user's activity stream (143-1).

FIG. 2 is a flowchart of an example of a method for calculating lists ofevents in activity streams, according to one example of principlesdescribed herein. As mentioned above, a social network service maycapture multiple resources of interest to a user based on the user'simplicit actions and explicit actions. As will be described below, alist of activity events for a user's activity stream is calculated basedon a user's implicit actions and explicit actions and prioritized asactivity events in a user's activity stream.

Turning specifically to FIG. 2, a list of activity events for a user'sactivity stream is calculated (201) based on weights assigned toimplicit actions and explicit actions. In one example a list of activityevents is determined by activity events influenced by a user's implicitactions and explicit actions. As mentioned above, implicit actions andexplicit actions are created when a user interacts with resources from asocial network service (FIG. 1, 142) and contents of a websites (FIG. 1,122). Further, implicit actions with a higher weight signify theimplicit actions are more relevant to the user. For example, a higherweight for an implicit action is created if a user frequently interactswith a resource from a social network service (FIG. 1, 142) or contentsof a website (FIG. 1, 122). Alternatively, implicit actions with a lowerweight signify the implicit actions are less relevant to the user. Forexample, a lower weight for an implicit action is created if a userinteracts with a resource from a social network service (FIG. 1, 142) orcontents of a website (FIG. 1, 122) a few times. In an extreme casewhere a weighed implicit action is below a certain threshold, theweighed implicit action may not influence an activity event to be usedin the list of activity events. As will be described in FIG. 3, otherfactors and considerations are used to determine the weight of implicitactions.

As mentioned above, explicit actions are used to influence whichactivity events are displayed in a user's activity stream and in whatorder the activity events are to be displayed. Further, explicit actionswith a higher weight signify the explicit actions are more relevant tothe user. For example, a higher weight for an explicit action is createdif a user frequently interacts explicitly with a resource from a socialnetwork service (FIG. 1, 142) or contents of a website (FIG. 1, 122).Alternatively, explicit actions with a lower weight signify the explicitactions are less relevant to the user. For example, a lower weight foran explicit action is created if a user explicitly interacts with aresource from a social network service (FIG. 1, 142) or contents of awebsite (FIG. 1, 122) infrequently or explicitly expressed interest in aresource a lone time ago. In a certain case where a weighed explicitaction is below a certain threshold, the weighed explicit action may notinfluence an activity event to be used in the list of activity events.Further, it should be noted that not all explicit actions are in auser's activity stream. For example, an explicit action that is not in auser's activity stream is repeat view. However, an explicit action thatis in a user's activity stream is reply to a topic. As will be describedin FIG. 3, other factors and considerations are used to determine theweight of explicit actions. Thus, a list of activity events for a user'sactivity stream is calculated (201) based on the weights assigned toimplicit actions and explicit actions.

In one example, weights for explicit actions may be determined bymentioning a user is a status update, in a comment, on a resource, orany appropriate combination thereof. Mentioning a user is created byusing special characters in a status update, in a comment, on aresource, or any appropriate combination thereof. The special charactersare used to allow a user to notify a user about a resource such as anobject, status update, comment, blog post, forum post. As mentionedabove, mentioning a user is a status update, in a comment, on aresource, or any appropriate combination thereof are displayed in anotification stream (FIG. 1, 143-2). In one example, mentioning a useris created by a user typing a status update such as “@JohnSmith look atthis photograph”. By typing a special character such as “@” allows auser to select a user to be notified of such an event, in this exampleJohn Smith. Further, any file, group or community referred to with thespecial character can also add a person using the special character “@”so that person is also notified. In keeping with the given example, thespecial character “@” also indicates the level of interest a user isexpressing in a resource.

Additionally, using two special characters in sequential order, such as“@@”, a user expresses a higher interest in a resource. As a result,using the special characters “@@” rather than the special character “@”,the user is able to express a higher than average interest for aresource. Thus, a higher weight is determined for a status update, acomment, a resource, or any appropriate combination thereof using thespecial character “@@” than the special character “@”. Next the list ofactivity events is prioritized (202) in the user's activity stream basedon the assigned weights. Prioritizing the list of activity events in auser's activity stream is based on the weighted implicit actions andexplicit actions. For example, weighted implicit actions and explicitactions having a higher weight are highly relevant to the user and areconsidered to be high priority. Further, implicit actions and explicitactions having a lower weight signify these actions are less relevant tothe user and are considered low priority. In keeping with the givenexample, once the implicit actions and explicit actions are prioritized,the implicit actions and explicit actions influence which activityevents are displayed in a user's activity stream and in what order theactivity events are to be displayed.

FIG. 3 is a flowchart of an example of a method for calculating lists ofevents in activity streams, according to one example of principlesdescribed herein. As mentioned above, the social targeting and followingroutine (FIG. 1, 144) is focused on capturing resources, using implicitactions and explicit actions, that a user should follow based on a usersinteraction patterns with a specific resource. For example, based on auser's interaction with a resource, its age, frequency the user visitsit, its use of trending terms, time spent viewing the resource, thesocial targeting and following routine (FIG. 1, 144) determines if auser will follow this specific resource. This will make a user aware ofupdates, comments, likes and other events of interest for the resource.Thus, the social targeting and following routine (FIG. 1, 144) makes auser aware of content changes and social interactions on resources theyhave already expressed interest in.

Turning specifically to FIG. 3, the method includes capturing (301) auser's interactions of multiple objects from multiple websites todetermine implicit actions and explicit actions. As mentioned above, auser may use a user device's (FIG. 1, 130) web browser interface (FIG.1, 131) to connect to a social network server (FIG. 1, 142) and a numberof servers (FIG. 1, 120) containing websites. Using the web browserinterface (FIG. 1, 131), a user may interact with content from a numberof websites (FIG. 1, 120). For example, a user may access content forwebsite 1 (FIG. 1, 122-1), website 2 (FIG. 1, 122-2), and website n(FIG. 1, 122-n). As mentioned above, as the user interacts withresources from each website, implicit actions are captured (301) andstored in an implicit actions repository (FIG. 1, 146). For example,when a user accesses a product website, a user will encounter resources.In one example these resources can be people, products, content, andtags among others. As a user views these resources, the user isexpressing an interest in the resource. For example, as a user types inwords in a search engine, the user is expressing an interest in suchtopics. Thus, a user's interaction with multiple resources may becaptured (301) as implicit actions.

Further, as the user interacts with resources from each website,explicit actions are captured (301) and stored in an explicit actionsrepository (FIG. 1, 145). For example, a user can follow a resource suchas an object or person, a user can want or add an item to a wish list,or a user can like a photo. Thus, a user's interaction with multipleresources may be captured (301) as explicit actions.

In one example, an explicit action is captured by an action requestedevent. As mentioned above, action requested events are created by usingspecial characters to not just notify a user of an activity event, butallow the user to take an action. As mentioned above, action requestedevents are displayed in the action requested stream (FIG. 1, 143-3). Inone example, an action requested event is created by a user typing astatus update such as “!@JohnSmith please access this photograph”. Asmentioned above, by typing special characters such as “!@” allows a userto select a user to be notified of such an activity event and takeaction. In this example, John Smith is notified of this activity eventand the user wants John Smith to take an action, such as to access aphotograph. Further, an action requested event is displayed in a user'saction requested stream (FIG. 1, 143-3).

In one example, the implicit actions and explicit actions can becaptured when a user interacted with a number of resources from blogs,communities, forums, profiles, and product websites. For example, assumethe system (FIG. 1, 100) captures implicit actions and explicit actionssuch as a user accessing blog X, reading forums by car manufacture Y,viewing a profile of a family member, wanting an item by manufacture Z,liking a photograph of a lion, searching for topics such as bonsai treesand cameras.

Next, the multiple implicit actions and explicit actions are weighed(302). As mentioned above, weighing multiple implicit actions isdetermined in part by a relationship of a user to a resource, time spentviewing a resource, age of last view of a resource, frequency of viewsof a resource, use of trending terms, and a collective graph from auser's social graph. Further, any other appropriate combination offactors may be used to weigh implicit actions. Further, implicit actionswith a higher weight signify the implicit actions are more relevant to auser. Alternatively, implicit actions with a lower weight signify theimplicit actions are less relevant to a user.

Additionally, weighing multiple explicit actions are determined by auser indicating interest in a resource such as reading a profile,visiting a community, replying to a topic, tagging a bookmark, repeatinga view, marking a favorite, prioritizing a favorite, deprioritizing afavorite, sharing the resource, sharing the resource with an importanceflag, using an action requested event, or other indicators of higherthan average importance or relevance. Further, any other appropriatecombination of factors may be used to weigh explicit actions. Further,explicit actions with a higher weight signify the explicit actions aremore relevant to a user. Alternatively, explicit actions with a lowerweight signify the explicit actions are less relevant to a user.

In one example, the weight of an implicit action or explicit action is anumerical index. The numerical index may range from 0 to 100, where 100designates an implicit action or explicit action that is extremelyrelevant to a user and 0 designates an implicit action or explicitaction that is entirely non-relevant.

In another example, the weight of an implicit action or explicit actionis symbolic. For example, assume implicit actions and explicit actionscan be rated with an extremely high weight, a high weight, an averageweight, a low weight, or an extremely low weight. In keeping with thegiven example, assume a user accessing blog X has a high weight, readingforums by car manufacture Y has an average weight, viewing a profile ofa family member has a high weight, wanting an item by manufacture Z hasan average weight, liking a photograph of a lion has a low weight,searching for topics such as bonsai trees has a high weight and camerashas an extremely low weight.

Next, a list of activity events for a user's activity stream iscalculated (303) based on the weights assigned to implicit actions andexplicit actions. As mentioned above, the list of activity events isdetermined by implicit actions and explicit actions when a userinteracts with a resource from the contents of websites (FIG. 1, 122).In keeping with the given example, assume the list of activity eventsfor a user's activity stream is calculated to include any activity eventinfluenced by an implicit action or explicit action having an averageweight or higher. Thus, the list of activity events for a user'sactivity stream is calculated to include blog X, forums by carmanufacture Y, the profile of a family member, the item by manufactureZ, and bonsai trees. Thus, the photograph of a lion and the cameras arenot included in the list of activity events for a user's activitystream.

Next, the list of activity events is prioritized (304) in a user'sactivity stream based on the assigned weights. As mentioned above,prioritizing the list of activity events in a user's activity stream isbased on the weighted implicit actions and explicit actions of the listof activity events. For example, implicit actions and explicit actionswith a higher weight are prioritized before implicit actions andexplicit actions with a lower weight as activity events in a user'sactivity stream (FIG. 1, 143-1). In one example, each weighted implicitaction or weighted explicit action corresponds to an activity event. Inanother example, a set of weighted implicit actions or a set of weightedexplicit actions corresponds to a single activity event.

In keeping with the given example, assume the list of activity events isprioritized. Assume blog X is given the highest priority. The profile ofa family member is given the second highest priority. The bonsai treesare given the third highest priority. The forums by car manufacture Y isgiven the fourth highest priority. Finally, the item by manufacture Z isgiven the lowest priority.

Finally, the prioritized list of activity events is displayed (305) inthe user's activity stream. In keeping with the given example, blog X isdisplayed first in the uses activity stream. The profile of a familymember is displayed second in the user's activity stream. The bonsaitrees are displayed third in the user's activity stream. The forums bycar manufacture Y is displayed after the bonsai trees in a user'sactivity stream. Lastly, the item by manufacture Z is displayed in auser's activity stream. Thus, a user is aware of collaborative actionsby other users, updates to any resources such as items or topics ofinterest.

FIG. 4 is a diagram of an example of a smart social targeting andfollowing system (400) according to the principles described herein. Thesmart social targeting and following system (400) includes a capturingengine (402) and a prioritizing engine (410). In this example, thesystem (400) also includes a receiving engine (404), a determiningengine (406), a calculating engine (408), and a displaying engine (412).The engines (402, 404, 406, 408, 410, 412) refer to a combination ofhardware and program instructions to perform a designated function. Eachof the engines (402, 404, 406, 408, 410, 412) may include a processorand memory. The program instructions are stored in the memory and causethe processor to execute the designated function of the engine.

The capturing engine (402) captures implicit actions and explicitactions. The implicit actions and explicit actions are captured when auser interacts with a broader social network service. In one example,capturing implicit actions and explicit actions includes monitoring auser's interaction with resources on a broader social network servicesuch as blogs, communities, threads, forums, or even product websites.

The receiving engine (404) receives captured implicit actions andexplicit actions. In one example, the information from the capturedimplicit actions and explicit actions is received by a social networkservice. Further, the received information from the captured implicitactions and explicit actions is stored in memory. In one example, theinformation from the captured implicit actions and explicit actions isstored in a repository on the social network's server. In anotherexample, the information from the captured implicit actions and explicitactions is stored in memory on a user's device. Further, any appropriatecombination may be used to store captured implicit actions and explicitactions.

The determining engine (406) determines the weight of each receivedimplicit action and explicit action. In one example, an implicitaction's weight is determined by a relationship of a user to a resource,time spent viewing a resource, age of last view of a resource, frequencyof views of a resource, use of trending terms, a collective graph form auser's social graph, or any combinations thereof. In another example, anexplicit action's weight is determined by a user indicating interest ina resource such as reading a profile, visiting a community, replying toa topic, tagging a bookmark, repeating a view, marking a favorite,prioritizing a favorite, deprioritizing a favorite, sharing theresource, sharing the resource with an importance flag, using an actionrequested event, other indicators of higher than average importance, orany combinations thereof.

The calculating engine (408) calculates a list of activity events for auser's activity stream based on weighted implicit actions and explicitactions. In one example, calculating a list of activity events for auser's activity stream includes using activity events influenced by allcaptured implicit actions and explicit actions. In another example,calculating a list of activity events for a user's activity streamincludes using activity events influenced by implicit actions andexplicit actions having a weight higher than a designated threshold.

The prioritizing engine (410) prioritizes the calculated list ofactivity events. In one example, prioritizing a list of activity eventsin a user's activity stream based on the weighted implicit actions andexplicit actions of the list of activity events includes prioritizinghigher weighed implicit actions and explicit actions before lowerweighted implicit actions and explicit actions.

The displaying engine (412) displays the prioritized list of activityevents in a user's activity stream. In one example, displaying theprioritized list of activity events in a user's activity stream includesdisplaying activity events influenced by higher weighed implicit actionsand explicit actions before activity events influenced by lower weightedimplicit actions and explicit actions in a user's activity stream (FIG.1, 143-1).

FIG. 5 is a diagram of an example of a smart social targeting andfollowing system (500), according to principles described herein. Inthis example, the calculating lists of events in activity streams system(500) includes processing resources (502) that are in communication withmemory resources (504). Processing resources (502) include at least oneprocessor and other resources used to process programmed instructions.The memory resources (504) represent generally any memory capable ofstoring data such as programmed instructions or data structures used bythe smart social targeting and following system (500). The programmedinstructions shown stored in the memory resources (504) include animplicit actions and explicit actions capturer (506), a implicit actionsand explicit actions receiver (508), an implicit actions and explicitactions weight determiner (510), an activity events listcalculator(512), an activity events list prioritizer (514), and aprioritized activity events list displayer (516).

The memory resources (504) include a computer readable storage mediumthat contains computer readable program code to cause tasks to beexecuted by the processing resources (502). The computer readablestorage medium is a tangible storage medium. The computer readablestorage medium may be any appropriate storage medium that is not atransmission storage medium. A non-exhaustive list of computer readablestorage medium types includes non-volatile memory, volatile memory,random access memory, write only memory, flash memory, electricallyerasable program read only memory, other types of memory, orcombinations thereof.

The implicit actions and explicit actions capturer (506) representsprogrammed instructions that, when executed, cause the processingresources (502) to capture implicit actions and explicit actions. Theimplicit actions and explicit actions receiver (508) representsprogrammed instructions that, when executed, cause the processingresources (502) to receive implicit actions and explicit actions. Theimplicit actions and explicit actions weight determiner (510) representsprogrammed instructions that, when executed, cause the processingresources (502) to determine the weight of implicit actions and explicitactions. The activity events list calculator (512) represents programmedinstructions that, when executed, cause the processing resources (502)to calculates an activity events list. The activity events listprioritizer (514) represents programmed instructions that, whenexecuted, cause the processing resources (502) to prioritize the list ofactivity events. The prioritized activity events list displayer (516)represents programmed instructions that, when executed, cause theprocessing resources (502) to display the prioritized activity eventslist in a user's activity stream.

Further, the memory resources (504) may be part of an installationpackage. In response to installing the installation package, theprogrammed instructions of the memory resources (504) may be downloadedfrom the installation package's source, such as a portable medium, aserver, a remote network location, another location, or combinationsthereof. Portable memory media that are compatible with the principlesdescribed herein include DVDs, CDs, flash memory, portable disks,magnetic disks, optical disks, other forms of portable memory, orcombinations thereof. In other examples, the program instructions arealready installed. Here, the memory resources can include integratedmemory such as a hard drive, a solid state hard drive, or the like.

In some examples, the processing resources (502) and the memoryresources (504) are located within the same physical component, such asa server, or a network component. The memory resources (504) may be partof the physical component's main memory, caches, registers, non-volatilememory, or elsewhere in the physical component's memory hierarchy.Alternatively, the memory resources (504) may be in communication withthe processing resources (502) over a network. Further, the datastructures, such as the libraries, may be accessed from a remotelocation over a network connection while the programmed instructions arelocated locally. Thus, the recommendation system (500) may beimplemented on a user device, on a server, on a collection of servers,or combinations thereof.

The smart social targeting and following system (500) of FIG. 5 may bepart of a general purpose computer. However, in alternative examples,the smart social targeting and following system (500) is part of anapplication specific integrated circuit.

The preceding description has been presented to illustrate and describeexamples of the principles described. This description is not intendedto be exhaustive or to limit these principles to any precise formdisclosed. Many modifications and variations are possible in light ofthe above teaching.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operations of possible implementationsof systems, methods, and computer program products. In this regard, eachblock in the flowchart or block diagrams may represent a module,segment, or portion of code, which has a number of executableinstructions for implementing the specific logical function(s). Itshould also be noted that, in some alternative implementations, thefunctions noted in the block may occur out of the order noted in thefigures. For example, two blocks shown in succession may, in fact, beexecuted substantially concurrently, or the blocks may sometimes beexecuted in the reverse order, depending upon the functionalityinvolved. It will also be noted that each block of the block diagramsand/or flowchart illustration and combination of blocks in the blockdiagrams and/or flowchart illustration, can be implemented by specialpurpose hardware-based systems that perform the specified functions oracts, or combinations of special purpose hardware and computerinstructions.

The terminology used herein is for the purpose of describing particularexamples, and is not intended to be limiting. As used herein, thesingular forms “a,” “an” and “the” are intended to include the pluralforms as well, unless the context clearly indicated otherwise. It willbe further understood that the terms “comprises” and/or “comprising”when used in the specification, specify the presence of stated features,integers, operations, elements, and/or components, but do not precludethe presence or addition of a number of other features, integers,operations, elements, components, and/or groups thereof.

What is claimed is:
 1. A method of identifying and applying authorprovided weights for items in an activity stream of a first user, themethod comprising, with a processor having an associated memory:receiving an item containing a first user's identifier for an activitystream to be provided to the first user; assigning the item one of threedifferent weightings depending on: the absence of a priority markassociated with the first user's identifier in the item and thecharacters in the priority mark associated with the first user'sidentifier in the item; and prioritizing items in the first user'sactivity stream based on the three weightings.
 2. The method of claim 1,wherein the priority marks are strings of characters.
 3. The method ofclaim 1, wherein each priority mark begins with a same character.
 4. Themethod of claim 1, wherein each priority mark has a different length. 5.The method of claim 1, wherein a first priority mark is the characterand a second priority mark is the two characters @!.
 6. The method ofclaim 1, wherein the second priority mark signals a request for anaction to be performed by the first user.
 7. The method of claim 6,wherein the action is viewing a posted media.
 8. A computer programproduct includes a computer readable storage medium, wherein thecomputer readable storage medium is not a signal per se, the computerreadable storage medium having computer readable program code which whenexecuted by a processor, causes the processor to perform the followingactions: identify instances of a first user's identifier in an activitystream, wherein the instances of the first user's identifier in theactivity stream have 1) a first priority mark associated with the firstuser's identifier, 2) a second priority mark associated with the firstuser's identifier, and 3) no priority mark associated with the firstuser's identifier, wherein the first priority mark is an action request,the first priority mark produces a higher weighting for an associateditem than a second priority mark, and the first priority mark produces ahigher weighting for an associated item than use of the first user'sidentifier with no priority mark, and wherein the second priority markis not an action request and the second priority mark produces a higherweighting for an associated item than use of the first user's identifierwith no priority mark; and sorting items in the activity stream based onthe weightings.
 9. The computer program product of claim 8, wherein theaction request is to view a posted image.
 10. The computer programproduct of claim 8, wherein weightings of items in the activity streamfurther depend on implicit and explicit actions by the first user. 11.The computer program produce of claim 10, wherein weighting of items inthe activity stream further depend on an implicit action selected from agroup consisting of: relationship of a user to a resource, time spentviewing a resource, age of last view of a resource, frequency of viewsof a resource, use of trending terms, and a collective graph from auser's social graph.
 12. The computer program produce of claim 10,wherein weighting of items in the activity stream further depend on animplicit action selected from a group consisting of: indicating interestin a resource such as reading a profile, visiting a community, replyingto a topic, tagging a bookmark, repeating a view, marking a favorite,prioritizing a favorite, deprioritizing a favorite, sharing theresource, sharing the resource with an importance flag, and using anaction requested event.
 13. The computer program product of claim 8,wherein the instructions further cause the processor to: captureimplicit and explicit actions by the first user as the first userinteracts with multiple websites.
 14. The computer program product ofclaim 8, wherein weighting is determined by collective viewing patternof the first user's social graph where the weighting based on thecontributions of the social graph depend on a degree of relationshipbetween member of the social graph and the first user.
 15. A system forproviding requests between members of a social network, the systemcomprising a processor having an associated memory, wherein the memorycontains instructions, which when executed, cause the processor to:prioritize presentation of a first item with an instance of a firstuser's identifier including a second priority mark over a second itemwith an instance of the first user's identifier including a firstpriority mark; prioritize presentation of the first item with theinstance of a first user's identifier including the second priority markover a third item with instance of the first user's identifier includingno priority mark; prioritize presentation of the second item over thethird item; present the first, second, and third items in a display;wherein the second priority mark indicates a request made of the firstuser.
 16. The system of claim 15, wherein the second priority markbegins with the symbol !.
 17. The system of claim 15, wherein the secondpriority mark consists of the symbols !@.
 18. The system of claim 17,wherein the first priority mark consists of the symbol @.
 19. The systemof claim 15, wherein the request made of the first user comprisesviewing an image.
 20. The system of claim 15, wherein the instructionsfurther cause the processor to: prioritize items with groups having acommon priority mark by a degree of relationship between the first useran author of the item on the first user's social graph.